#! /bin/bash
if [ `id -u` -gt 0 ];
  then
     echo 'please use  the root user to execute this script';
   exit 2;
fi
# mongodb下载地址
mongoUrl=http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.3.tgz
#下载包的名称
fileName=mongodb-linux-x86_64-rhel70-3.6.3.tgz
#文件安装目录
installDir=/usr/local/mongodb
#系统服务注册目录
systemctlDir=/etc/systemd/system
#下载mongodb，如果已经存在则不下载
wget -nc $mongoUrl;
#解压文件
tar -zxvf $fileName
[ 0 -gt $? ] && echo '解压文件失败' && exit 2;
#移除下载的文件
rm -rf ./$fileName
[ 0 -gt $? ] && echo '移除已下载文件失败' && exit 2;
#判断安装文件目录是否已经存在
[  -d $installDir ] && echo '安装目录已存在！' && [  -n $installDir  ] && rm  -r $installDir/*

[ 0 -gt $? ] && echo '删除已有目录失败！' && exit 2;

[ ! -d $installDir ] && mkdir  $installDir && echo '新建安装目录...'
#复制数据到安装目录下
cp -rp  mongodb-linux-x86_64-rhel70-3.6.3/*  $installDir
#创建子目录
for subDir in data/db log conf bin
    do mkdir -p $installDir/$subDir;
done
#修改权限
chmod -R 777 $installDir
cd $installDir/conf
#创建配置文件
echo "#mongodb configuration
    #日志输出管理
systemLog:
    destination: file #指定日志格式为文件,指定为文件时，必须指定path.
    path: /usr/local/mongodb/log/mongod.log
    quiet: true #静默模式,限制日志的输出信息
    logAppend: true #启用追加日志
    timeStampFormat: iso8601-utc #日志信息中的时间戳格式
#进程管理
net:
    maxIncomingConnections: 1000000 #实例接受的最大连接数,默认1000000
    port: 27017 #服务监听的端口
    bindIp: 0.0.0.0 #实例绑定的IP，默认全部开启
    wireObjectCheck: false #检查文档的有效性,会稍微印象性能,默认关闭.
">>mongod.conf

#配置系统服务
[ ! -d $systemctlDir ] && mkdir -P $systemctlDir
#判断系统服务是否已经存在
[ -e $systemctlDir/mongodb.service ] && rm -rf $systemctlDir/mongodb.service
#依赖服务列表
echo "[Unit]
Description=mongodb service
[Service]
Type=forking
PIDFile=/var/run/mongodb/mongod.pid
ExecStart=$installDir/bin/mongod -f $installDir/conf/mongod.conf
ExecStop=$installDir/bin/mongod  --shutdown  --dbpath $installDir/data/db
ExecReload=$installDir/bin/mongod --dbpath $installDir/data/db
[Install]
WantedBy=multi-user.target
">>$systemctlDir/mongodb.service
echo '安装成功!'
